<script>
	import WebIM from './utils/WebIM.js' // 1
	export default {
		onLaunch: function() {
			//console.log('App Launch')
			// #ifdef H5
				var script = document.createElement('script');
				script.src = "https://turing.captcha.qcloud.com/TCaptcha.js";
				document.body.appendChild(script);
			// #endif
			this.HxListen()
			
		},
		onShow: function() {
			this.HxListen()
			
				// #ifdef APP
				var args= plus.runtime.arguments;
				console.log('接受的参数',args);
				let url = args;
				let requestParams = {};
				if (url.indexOf('?') !== -1) {
					let str = url.substr(url.indexOf('?') + 1); //截取?后面的内容作为字符串
					// console.log(str, '?后面的内容');
					let strs = str.split('&'); //将字符串内容以&分隔为一个数组
					// console.log(strs, '以&切割的数组');
					for (let i = 0; i < strs.length; i++) {
						requestParams[strs[i].split('=')[0]] = decodeURI(strs[i].split('=')[1]);
						// 将数组元素中'='左边的内容作为对象的属性名，'='右边的内容作为对象对应属性的属性值
					}
				}
				console.log(requestParams, '处理后的对象');
				uni.setStorageSync('requestParams',requestParams)
				
				// #endif
			//console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		// 2
		methods: {
			HxListen() {
				console.log('>>>>环信监听')
				uni.WebIM.conn.listen({
					onOpened: function() {
						console.log('>>>环信链接成功')
					}, //连接成功回调 
					onClosed: function() {
						console.log('>>>退出成功')
					}, //连接关闭回调
					onTextMessage: function(message) {}, //收到文本消息
					onEmojiMessage: function(message) {}, //收到表情消息
					onPictureMessage: function(message) {}, //收到图片消息
					onCmdMessage: function(message) {}, //收到命令消息
					onAudioMessage: function(message) {}, //收到音频消息
					onLocationMessage: function(message) {}, //收到位置消息
					onFileMessage: function(message) {}, //收到文件消息
					onCustomMessage: function(message) {}, //收到自定义消息
					onVideoMessage: function(message) {

					}, //收到视频消息
					onGroupEvent: function(msg) {
						switch (msg.operation) {
							// 有新群组创建。群主的其他设备会收到该回调。
							case "create":
								break;
								// 关闭群组一键禁言。群组所有成员（除操作者外）会收到该回调。
							case "unmuteAllMembers":
								break;
								// 开启群组一键禁言。群组所有成员（除操作者外）会收到该回调。
							case "muteAllMembers":
								break;
								// 有成员从群白名单中移出。被移出的成员及群主和群管理员（除操作者外）会收到该回调。
							case "removeAllowlistMember":
								break;
								// 有成员添加至群白名单。被添加的成员及群主和群管理员（除操作者外）会收到该回调。
							case "addUserToAllowlist":
								break;
								// 删除群共享文件。群组所有成员会收到该回调。
							case "deleteFile":
								break;
								// 上传群共享文件。群组所有成员会收到该回调。
							case "uploadFile":
								break;
								// 删除群公告。群组所有成员会收到该回调。
							case "deleteAnnouncement":
								break;
								// 更新群公告。群组所有成员会收到该回调。
							case "updateAnnouncement":
								break;
								// 更新群组信息，如群组名称和群组描述。群组所有成员会收到该回调。
							case "updateInfo":
								break;
								// 有成员被移出禁言列表。被解除禁言的成员及群主和群管理员（除操作者外）会收到该回调。
							case "unmuteMember":
								break;
								// 有群组成员被加入禁言列表。被禁言的成员及群主和群管理员（除操作者外）会收到该回调。
							case "muteMember":
								break;
								// 有管理员被移出管理员列表。群主、被移除的管理员和其他管理员会收到该回调。
							case "removeAdmin":
								break;
								// 设置管理员。群主、新管理员和其他管理员会收到该回调。
							case "setAdmin":
								break;
								// 转让群组。原群主和新群主会收到该回调。
							case "changeOwner":
								break;
								// 群组所有者和管理员拉用户进群时，无需用户确认时会触发该回调。被拉进群的用户会收到该回调。
							case "directJoined":
								break;
								// 群成员主动退出群组。除了退群的成员，其他群成员会收到该回调。
							case "memberAbsence":
								break;
								// 有用户加入群组。除了新成员，其他群成员会收到该回调。
							case "memberPresence":
								break;
								// 用户被移出群组。被踢出群组的成员会收到该回调。
							case "removeMember":
								break;
								// 当前用户的入群邀请被拒绝。邀请人会收到该回调。例如，用户 B 拒绝了用户 A 的入群邀请，用户 A 会收到该回调。
							case "rejectInvite":
								break;
								// 当前用户的入群邀请被接受。邀请人会收到该回调。例如，用户 B 接受了用户 A 的入群邀请，则用户 A 会收到该回调。
							case "acceptInvite":
								break;
								// 当前用户收到了入群邀请。受邀用户会收到该回调。例如，用户 B 邀请用户 A 入群，则用户 A 会收到该回调。
							case "inviteToJoin":
								break;
								// 当前用户的入群申请被拒绝。申请人会收到该回调。例如，用户 B 拒绝用户 A 的入群申请后，用户 A 会收到该回调。
							case "joinPublicGroupDeclined":
								break;
								// 当前用户的入群申请被接受。申请人会收到该回调。例如，用户 B 接受用户 A 的入群申请后，用户 A 会收到该回调。
							case "acceptRequest":
								break;
								// 当前用户发送入群申请。群主和群管理员会收到该回调。
							case "requestToJoin":
								break;
								// 群组被解散。群主解散群组时，所有群成员均会收到该回调。
							case "destroy":
								break;
								// 设置群成员的自定义属性。群组内其他成员均会收到该回调。
							case "memberAttributesUpdate":
								break;
							default:
								break;
						}
					},
					onPresence: function(message) {}, //处理“广播”或“发布-订阅”消息，如联系人订阅请求、处理群组、聊天室被踢解散等消息
					onRoster: function(message) {}, //处理好友申请
					onInviteMessage: function(message) {}, //处理群组邀请
					onOnline: function() {}, //本机网络连接成功
					onOffline: function() {}, //本机网络掉线
					onError: function(message) {}, //失败回调
					onBlacklistUpdate: function(list) { //黑名单变动
						// 查询黑名单，将好友拉黑，将好友从黑名单移除都会回调这个函数，list则是黑名单现有的所有好友信息
						console.log(list);
					},
					onRecallMessage: function(message) {}, //收到撤回消息回调
					onReceivedMessage: function(message) {}, //收到消息送达服务器回执
					onDeliveredMessage: function(message) {}, //收到消息送达客户端回执
					onReadMessage: function(message) {}, //收到消息已读回执
					onCreateGroup: function(message) {}, //创建群组成功回执（需调用createGroupNew）
					onMutedMessage: function(message) {}, //如果用户在A群组被禁言，在A群发消息会走这个回调并且消息不会传递给群其它成员
					onChannelMessage: function(message) {} //收到整个会话已读的回执，在对方发送channel ack时会在这个回调里收到消息
				});
			}
		}
	}
</script>

<style lang="scss">
	/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
	@import "uview-ui/index.scss";
	/*每个页面公共css */
	@import url("css/public.css");

	// @font-face{
	//     font-family: 'iconfont';
	//     src:url("~@/iconfont/almm.ttf");
	// }
	// @font-face{
	//     font-family: 'iconfont2';
	//     src:url("~@/iconfont/YouSheBiaoTiHei.ttf");
	// }

	// 全局灰色背景 (国家节假日一键变灰色)
	// html{
	// 	filter:grayscale(1); //为1就是灰色，0就是不起作用
	// 	-webkit-filter:grayscale(1)
	// }

</style>